// 权限管理下的用户信息管理接口
import request from '@/utils/request'
// 引入定义好的接口数据类型
import type {
  User,
  UserResponseData,
  AllRoleResponseData,
  SetRoleData,
} from '@/api/acl/user/type'
enum API {
  // 获取全部已有用户账号信息(根据当前的页码和Size)
  ALLUSER_URL = '/admin/acl/user/',
  // 添加新用户的接口
  ADDUSER_URL = '/admin/acl/user/save',
  // 更新已有的用户账号
  UPDATEUSER_URL = '/admin/acl/user/update',
  // 获取用户的职位信息
  ALLROLEURL = '/admin/acl/user/toAssign/',
  // 设置用户职位的接口
  SETROLE_URL = '/admin/acl/user/doAssignRole',
  //删除某一个账号
  DELETEUSER_URL = '/admin/acl/user/remove/',
  //批量删除的接口
  DELETEALLUSER_URL = '/admin/acl/user/batchRemove',
}

// 获取用户账号信息的接口
export const reqUserInfo = (page: number, limit: number, username: string) =>
  request.get<any, UserResponseData>(
    API.ALLUSER_URL + `${page}/${limit}/?username=${username}`,
  )
// 添加用户与更新已有的用户的接口
export const reqAddOrUpdateUser = (data: User) => {
  if (data.id) {
    // 如果data有id 则发生修改用户信息请求
    return request.put<any, any>(API.UPDATEUSER_URL, data)
  } else {
    // 如果data没有id 则发送添加用户信息请求
    return request.post<any, any>(API.ADDUSER_URL, data)
  }
}
// 获取全部职位以及对应ID用户已有的职位
export const reqAllRole = (userId: number | string) =>
  request.get<any, AllRoleResponseData>(API.ALLROLEURL + userId)
// 设置用户角色的职位
export const reqSetUserRole = (data: SetRoleData) =>
  request.post<any, any>(API.SETROLE_URL, data)
//删除某一个账号的信息
export const reqRemoveUser = (userId: number) =>
  request.delete<any, any>(API.DELETEUSER_URL + userId)
//批量删除的接口
export const reqSelectUser = (idList: number[]) =>
  request.delete(API.DELETEALLUSER_URL, { data: idList })
